## 第07课 蓝牙控制

![](media/image1.png)

### （1）项目介绍：

蓝牙是近几十年来最流行的一种简单的无线通信模块，易于使用，已在大多数电池供电的设备中使用。蓝牙标准进行了许多升级，以不断满足客户和技术的需求。几年来，发生了许多变化，包括数据传输速率，可穿戴设备和IoT设备以及安全系统的功耗。

在这里，我们将学习DX-BT24。 DX-BT24是一种随时可用的蓝牙模块。 该模块用于建立无线数据通信。

### （2）蓝牙参数：

蓝牙协议：Bluetooth Specification V5.1 BLE

工作距离：在开放环境中，实现50-100m超远距离通讯

工作频率：2.4GHz ISM频段

通信接口：UART

蓝牙认证：符合FCC CE ROHS REACH认证标准

FLASH：1M

串口参数：9600、8数据位、1停止位、无效位、无流控

电源：5V DC

工作温度：–5至+65摄氏度

### （3）项目组件：

| keyes PLUS 开发板*1                      | Keyes brick L298P 电机驱动扩展板 V1*1    | keyes 草帽LED白发红模块*1                | DX-BT24蓝牙模块                          |
| ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- |
| <img src="media/image2.png" width="200"> | <img src="media/image3.png" width="200"> | <img src="media/image4.png" width="200"> | <img src="media/image5.png" width="200"> |
| 3Pin 双母头杜邦线*1                      | USB线*1                                  | 18650双节电池盒*1                        | 18650电池*2 （电池自配）                 |
| <img src="media/image6.jpg" width="200"> | <img src="media/image7.png" width="200"> | <img src="media/image8.png" width="200"> | <img src="media/image9.png" width="200"> |

### （4）接线图：

![](media/image10.png)

**蓝牙是直接插在电机驱动扩展板上的，注意一下方向，而且在上传代码之前不要插上蓝牙。**

### （5）安装蓝牙APP测试：

进入公司资料官网的下载中心：https://www.keyesrobot.cn/zh-cn/latest/docs/Download_Center/Download_Center.html

找到keyes 4wd小车的APP：![image12](media/image12.png)

下载打开后，连接蓝牙上电，蓝牙模块上LED闪烁。点击APP左上角的图标 ![](media/image14.png) ，搜索到蓝牙，显示如下图。

![](media/image15.jpg)

4.点击BT24连接，蓝牙连接成功，显示如下图，蓝牙模块上LED变为常亮。

![](media/image16.jpg)

### （6）项目代码：

| ①初始化 <br />②设置串口波特率为9600 | ![](media/image17.png) |
| ----------------------------------- | ---------------------- |
| ③在4WD智能小车栏目里面找到蓝牙模块  | ![](media/image18.png) |
| ④串口换行打印指定的变量             | ![](media/image19.png) |


![](media/image20.png)

（**上传代码之前不要连接蓝牙模块，因为代码的上传也是用的串口通信，跟蓝牙的串口通信会有冲突，导致代码上传不成功**）

上传代码到开发板，然后再插上蓝牙模块，等待手机发出的指令。

![](media/image21.png)

### （7）项目拓展：

上面的项目，我们讲解了蓝牙接收到手机发送的信号并且在开发板的串口显示出来，比如我们按下 ![](media/image22.png) ，然后我们就会接收到‘B’，当我们松开的时候又接收到‘S’。那接下来我们就要想一下了，我们可以利用接收到的信号去做一些事情吗，答案是肯定的，我们这里就利用手机发送的命令去打开或者关闭一个LED灯。看接线图，在D9脚接了一个LED。

![](media/image23.png)

| ①初始化                                               | ![](media/image24.png) |
| ----------------------------------------------------- | ---------------------- |
| ②设置串口波特率为9600                                 | ![](media/image25.png) |
| ③设置变量i为整数                                      | ![](media/image26.png) |
| ④赋值为0                                              | ![](media/image27.png) |
| ⑤在4WD智能小车栏目里面找到蓝牙模块                    | ![](media/image28.png) |
| ⑥串口换行打印指定的字符串DATA RECEIVED：              | ![](media/image29.png) |
| ⑦如果变量i=‘1’成立时，则执行do里面的命令（代码）      | ![](media/image30.png) |
| ⑧点亮D9脚的LED <br />⑨串口换行打印指定的字符串led on  | ![](media/image31.png) |
| ⑩如果变量i=‘0’成立时，则执行do里面的命令（代码）      | ![](media/image32.png) |
| ⑪熄灭D9脚的LED <br />⑫串口换行打印指定的字符串led off | ![](media/image33.png) |

![](media/image34.png)

上传代码完成后，点击手机APP上 ![](media/image35.png) 以控制LED。当您按下发送`B`时，LED将打开，而当您松开发送`S`时，LED将关闭。

![](media/image36.png)
